www.gusucode.com > vc++ 远程控制示例源程序-源码程序 > vc++ 远程控制示例源程序-源码程序\code\PeerYouC\CreateDirDlg.cpp
// CreateDirDlg.cpp : implementation file // Download by http://www.NewXing.com #include "stdafx.h" #include "peeryouc.h" #include "CreateDirDlg.h" #include "PeerFileListView.h" #include "PeerFileremoteListView.h" #include "sortlistctrl.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CCreateDirDlg dialog CCreateDirDlg::CCreateDirDlg(bool p,CWnd* pParent /*=NULL*/) : CDialog(CCreateDirDlg::IDD, pParent) { //{{AFX_DATA_INIT(CCreateDirDlg) m_dir = _T(""); pre=p; parent=pParent; //}}AFX_DATA_INIT } void CCreateDirDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CCreateDirDlg) DDX_Text(pDX, IDC_DIRNAME, m_dir); DDV_MaxChars(pDX, m_dir, 256); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CCreateDirDlg, CDialog) //{{AFX_MSG_MAP(CCreateDirDlg) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CCreateDirDlg message handlers void CCreateDirDlg::OnOK() { // TODO: Add extra validation here UpdateData(); CSortListCtrl *ls; if(pre) { CPeerFileListView* lv=(CPeerFileListView*)parent; lv->Retrive(); ls=&lv->list; } else { CPeerFileRemoteListView *rv=(CPeerFileRemoteListView*)parent; rv->Retrive(); ls=&rv->list; } for(int i=0;i<ls->GetItemCount();i++) if(m_dir==ls->GetItemText(i,0)) { MessageBox("已经由此目录"); return; } if(pre) { CPeerFileListView* lv=(CPeerFileListView*)parent; CString dir=lv->path+"\\"+m_dir; if(!CreateDirectory(dir,NULL)) { MessageBox(dir+"创建失败"); } else { lv->Retrive(); } } else { CPeerFileRemoteListView *rv=(CPeerFileRemoteListView*)parent; CString dir=rv->path+"\\"+m_dir; WSAEVENT hEvent=WSACreateEvent(); if(hEvent==WSA_INVALID_EVENT) { goto there; } SOCKET s; if(!PeerCreateSocket(&s,PEER_STREAM)) { WSACloseEvent(hEvent); goto there; } if(!PeerConnectSocket(s,ADDRESS,7788)) { WSACloseEvent(hEvent); closesocket(s); goto there; } DWORD retLen; FILEINFO fi; COMMAND com; com.CommandID=PEER_FILE_CREATEDIR; if(!PeerSendDataS(s,(char*)&com,sizeof(com),&retLen,hEvent)) { goto there; } strcpy(fi.filename,dir); if(!PeerSendDataS(s,(char*)&fi,sizeof(fi),&retLen,hEvent)) { goto there; } PeerRecvDataS(s,(char*)&com,sizeof(com),&retLen, hEvent); CString Mess; Mess="创建文件夹:"+dir; if(com.CommandID==PEER_CFM_ERR) { Message(Mess.GetBuffer(Mess.GetLength()),"失败"); MessageBox("建立文件夹失败"); goto there; } else { Message(Mess.GetBuffer(Mess.GetLength()),"成功"); rv->Retrive(); } WSACloseEvent(hEvent); closesocket(s); } there: CDialog::OnOK(); }